Altri articoli sul numero 80 Luisa Belloni ha acquistato all'inizio dell'anno un A1200 in sostituzione del precedente A600 e teme che faccia parte del primo lotto prodotto da Amiga Technologies con floppy drive difettoso nel circuito di segnalazione del cambio di dischetto, che causa l'interruzione dei "trackloader" di molti giochi. Secondo Luisa l'ipotesi sembra verificata dal mancato caricamento della maggior parte dei giochi anche AGA; tuttavia il laboratorio in cui ha portato l'A1200 per la sostituzione del drive con uno di vecchio tipo (come da noi suggerito sul numero 76) non ha ottenuto risultati positivi neanche effettuando ulteriori sostituzioni. E' stato confermato che il problema al floppy drive dei primi A1200 di Amiga Technologies dipende dalla mancata generazione del segnale /RDY (filo numero 34 del cavo piatto) da parte della loro scheda di controllo. Questo segnale generato dal floppy indica all'Amiga che il motore ha raggiunto la velocita' di regime, e passa al livello logico zero qualche millisecondo dopo che il programma di controllo del floppy fa partire il motore portando /MTR0 e /SEL0 al livello logico zero. Non viene usato dalla trackdisk.device, ma e' documentato sull'Hardware Manual e quindi perfettamente legale. I programmi che malfunzionano per questo motivo (es: Xcopy) possono facilmente essere corretti con una patch, sostituendo alle istruzioni per l'attesa di /RDY basso (bit 5 della porta A del CIA A) un loop di circa mezzo secondo. Una soluzione rapida al problema, sufficiente a sbloccare la maggioranza dei giochi, consiste nel saldare un diodo tipo 1N4148 tra i piedini 34 e 16 del pettine del floppy interno con la fascia nera (o quella gialla piu' larga) rivolta verso il piedino 16. Per non rovinare i contatti del connettore, consigliamo di estrarre la motherboard dall'Amiga e saldare il diodo sulla faccia inferiore. La numerazione dei piedini del pettine e' fatta in modo che tutti i contatti pari sono su una fila, mentre tutti i dispari sono collegati a massa e formano l'altra fila. Una soluzione piu' completa e' stata proposta su Aminet da Christian Sauer; non e' lo schema piu' semplice possibile ma ha i pregi di essere stato sperimentato con successo da moltissimi amighisti e di utilizzare componenti reperibili ovunque. L'uscita della porta NOR contenuta nel chip SN74LS02 passa allo stato logico alto solo quando entrambi gli ingressi, prelevati dal pettine del floppy interno (pin 16 e pin 10), si trovano allo stato basso. Il condensatore e la resistenza rallentano la propagazione di questo cambiamento di stato verso la porta contenuta nel chip CD4093, che e' usata per squadare il segnale, invertire lo stato logico e adattare i livelli di tensione a quelli CMOS richiesti da Amiga. Il diodo serve per scaricare immediatamente il condensatore appena /MTR0 o /SEL0 ritornano allo stato alto, mentre la resistenza variabile andra' regolata in modo da ottenere il minimo tempo di caricamento del gioco che non provoca errori o blocchi di sistema. Nello schema elettrico Christian Sauer ha dimenticato i collegamenti di alimentazione dei due chip: i piedini 7 sono la massa, mentre la tensione di +5 Volt va applicata ai piedini 14; gli altri piedini si possono lasciare non collegati. L'uscita /RDY andra' collegata al pin 34 del pettine interno o al pin 1 del connettore floppy esterno. Se in futuro il floppy drive dovesse essere sostituito con un modello ad alta densita', il circuito dev'essere rimosso perche' inibirebbe la trasmissione del drive ID al boot. Se i giochi si bloccano durante il caricamento non e' necessariamente colpa del floppy drive difettoso; purtroppo la descrizione poco accurata non permette una conferma sicura della diagnosi fatta da Luisa, che comunque puo' essere facilmente verificata eseguendo l'utility "A1200FDtest" contenuta nel file A1200fdfix.lha di Aminet. E' noto che la maggioranza dei giochi non-AGA di qualche anno fa non funziona su A1200, soprattutto per precise scelte dei programmatori e delle case editrici del software, che generalmente miravano a ridurre il tempo destinato alle prove di compatibilita' ed a creare le premesse per una futura massiccia campagna di rinnovamento del parco software, trainata dal nuovo hardware. Molti di questi giochi pero' possono essere recuperati, sia grazie alle patch realizzate da gruppi di "coders", sia con programmi come Degrader e il caricatore di Kickstart 1.3 (reperibili su Aminet e nel "mercato sommerso"); a volte puo' bastare la rimozione dell'intro inserita dallo sprotettore. Anche i giochi AGA possono dare problemi, quando invece che con un regolare acquisto sono stati procurati per vie traverse o illegali, senza controlli di qualita'. Altre volte il malfunzionamento del gioco dipende dalla presenza di una scheda acceleratrice, che altera il funzionamento dell'A1200 base principalmente in tre modi: 1) L'accesso "asincrono" alla Chip RAM, tipico delle schede ad alte prestazioni, introduce ritardi e irregolarita' nel refresh grafico. 2) La presenza di Fast RAM (anche autoconfigurante) al di fuori della zona autoconfig Zorro II richiede la corretta gestione del byte piu' significativo dei registri indirizzi della CPU, che non tutti i giochi possono garantire. Spesso infatti i "coder" non prestano attenzione a questo dettaglio o usano il byte extra per ottimizzazioni particolari. Un problema simile e' posto da quei programmi che insistono ad esigere un banco di RAM locato a 0x0C000000, tipico di A500 ma normalmente non supportato dalle espansioni di Fast RAM per A1200. 3) Le cache e le istruzioni privilegiate dei processori piu' evoluti sono diverse da quelle del 68020. Un programma automodificante o che lavora in modo supervisore ha buone possibilita' di malfunzionare. Oltre a questi meccanismi principali, le schede acceleratrici influiscono sul comportamento del codice in altri modi piu' sottili ma che difficilmente hanno importanza per la compatibilita' con i giochi (es: il funzionamento dell'istruzione test_and_set e la gestione degli accessi ad indirizzi inesistenti).